package com.example.service;

import com.example.common.Result;
import com.example.common.PageResult;
import com.example.dto.PurchaseRecordQueryDTO;
import com.example.vo.PurchaseRecordVO;

import java.util.List;

/**
 * 管理员购买记录管理服务接口
 */
public interface AdminPurchaseService {

    /**
     * 分页查询所有用户的购买记录
     */
    Result<PageResult<PurchaseRecordVO>> getPurchaseRecordsPage(PurchaseRecordQueryDTO queryDTO);

    /**
     * 根据用户ID查询购买记录
     */
    Result<List<PurchaseRecordVO>> getPurchaseRecordsByUserId(Long userId);

    /**
     * 根据商品ID查询购买记录
     */
    Result<List<PurchaseRecordVO>> getPurchaseRecordsByProductId(Long productId);

    /**
     * 根据店长ID查询购买记录
     */
    Result<List<PurchaseRecordVO>> getPurchaseRecordsByStoreManagerId(Long storeManagerId);

    /**
     * 查询购买记录详情
     */
    Result<PurchaseRecordVO> getPurchaseRecordById(Long id);

    /**
     * 导出购买记录
     */
    Result<List<PurchaseRecordVO>> exportPurchaseRecords(PurchaseRecordQueryDTO queryDTO);

    /**
     * 获取购买统计信息
     */
    Result<Object> getPurchaseStatistics(String startTime, String endTime);

    /**
     * 管理员取消用户购买记录
     */
    Result<Void> cancelPurchaseRecord(Long id, String reason);

    /**
     * 获取热门商品购买排行
     */
    Result<List<Object>> getPopularProducts(int limit, String startTime, String endTime);

    /**
     * 获取用户购买排行
     */
    Result<List<Object>> getTopBuyers(int limit, String startTime, String endTime);
} 